home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
p_man
/
cat3
/
f90
/
intro_intrin.z
/
intro_intrin
Wrap
Text File
|
1998-10-30
|
12KB
|
537 lines
INTRO_INTRIN(3I) Last changed: 1-6-98
NNAAMMEE
IINNTTRROO__IINNTTRRIINN - Introduction to intrinsic procedures
IIMMPPLLEEMMEENNTTAATTIIOONN
See individual man pages for implementation details
DDEESSCCRRIIPPTTIIOONN
Intrinsic procedures are predefined by the computer programming
language. They are invoked in the same way that other procedures are
invoked.
The Fortran 90 standard defines intrinsic procedures, and the CF90 and
MIPSpro 7 Fortran 90 compilers include other intrinsics as extensions
to the standard.
There are four classes of Fortran intrinsic procedures as defined by
the Fortran 90 standard: inquiry functions, elemental functions,
transformational functions, and subroutines. Additional intrinsics
provided with the CF90 and MIPSpro 7 Fortran 90 compiler include
intrinsics that support IEEE floating-point arithmetic and other
compiler extensions.
The CF90 and MIPSpro 7 Fortran 90 compilers evaluate intrinsic
procedures in line or by calling external code. Depending on your
platform and your program, the following intrinsics can be evaluated
in line:
* AABBSS, DDAABBSS, IIAABBSS
* AACCHHAARR
* AAIIMMAAGG
* AAIINNTT
* AALLLL
* AANNDD
* AANNIINNTT
* AANNYY
* BBIITT__SSIIZZEE
* MM@@CCLLRR, MM@@LLDD, MM@@MMXX, MM@@LLDDMMXX, MM@@UULL (the BMM intrinsics)
* BBTTEESSTT
* CCEEIILLIINNGG
* CCHHAARR, IICCHHAARR
* CCLLEEAARR__IIEEEEEE__EEXXCCEEPPTTIIOONN
* CCLLOOCC
* CCMMPPLLXX
* CCOOMMPPLL
* CCOONNJJGG
* CCOOUUNNTT
* CCSSHHIIFFTT
* CCSSMMGG
* CCVVMMGGMM, CCVVMMGGNN, CCVVMMGGPP, CCVVMMGGZZ, CCVVMMGGTT
* DDBBLLEE, DDFFLLOOAATT
* DDIIGGIITTSS
* DDIIMM, IIDDIIMM
* DDIISSAABBLLEE__IIEEEEEE__IINNTTEERRRRUUPPTT
* DDOOTT__PPRROODDUUCCTT
* DDPPRROODD
* DDSSHHIIFFTTLL
* DDSSHHIIFFTTRR
* EENNAABBLLEE__IIEEEEEE__IINNTTEERRRRUUPPTT
* EEOOSSHHIIFFTT
* EEPPSSIILLOONN
* EEQQVV
* EEXXPPOONNEENNTT
* FFCCDD
* FFLLOOOORR
* FFRRAACCTTIIOONN
* GGEETT__IIEEEEEE__EEXXCCEEPPTTIIOONNSS
* GGEETT__IIEEEEEE__IINNTTEERRRRUUPPTTSS
* GGEETT__IIEEEEEE__RROOUUNNDDIINNGG__MMOODDEE
* GGEETT__IIEEEEEE__SSTTAATTUUSS
* HHUUGGEE
* II2244MMUULLTT
* IIAACCHHAARR
* IIAANNDD
* IIBBCCLLRR
* IIBBIITTSS
* IIBBSSEETT
* IIEEEEEE__CCLLAASSSS
* IIEEEEEE__CCOOPPYY__SSIIGGNN
* IIEEEEEE__FFIINNIITTEE
* IIEEEEEE__IINNTT
* IIEEEEEE__IISS__NNAANN
* IIEEEEEE__RREEAALL
* IIEEEEEE__UUNNOORRDDEERREEDD
* IIEEOORR
* IINNTT, IIDDIINNTT, IIFFIIXX
* IINNTT2244, LLIINNTT
* IINNTT__MMUULLTT__UUPPPPEERR
* IIOORR
* IISSHHFFTT
* IISSHHFFTTCC
* KKIINNDD
* LLBBOOUUNNDD
* LLEEAADDZZ
* LLEENN
* LLGGEE, LLGGTT, LLLLEE, LLLLTT
* LLOOCC
* LLOOGGIICCAALL
* MMAASSKK
* MMAATTMMUULL
* MMAAXX, MMAAXX00, AAMMAAXX11, DDMMAAXX11, AAMMAAXX00, MMAAXX11
* MMAAXXEEXXPPOONNEENNTT
* MMAAXXLLOOCC
* MMAAXXVVAALL
* MMEEMMOORRYY__BBAARRRRIIEERR
* MMEERRGGEE
* MMIINN, MMIINN00, AAMMIINN11, DDMMIINN11, AAMMIINN00, MMIINN11
* MMIINNEEXXPPOONNEENNTT
* MMIINNVVAALL
* MMOODD, AAMMOODD
* MMOODDUULLOO
* MMVVBBIITTSS
* MMYY__PPEE
* NNEEAARREESSTT
* NNEEQQVV, XXOORR
* NNIINNTT, IIDDNNIINNTT
* NNOOTT
* NNUUMMAARRGG
* OORR
* PPOOPPCCNNTT
* PPOOPPPPAARR
* PPRREECCIISSIIOONN
* PPRREESSEENNTT
* PPRROODDUUCCTT
* RRAADDIIXX
* RRAANNGGEE
* RREEAALL, FFLLOOAATT, SSNNGGLL
* RREEMMOOTTEE__WWRRIITTEE__BBAARRRRIIEERR
* RRRRSSPPAACCIINNGG
* RRTTCC, IIRRTTCC
* SSCCAALLEE
* SSEELLEECCTTEEDD__IINNTT__KKIINNDD
* SSEETT__EEXXPPOONNEENNTT
* SSEETT__IIEEEEEE__EEXXCCEEPPTTIIOONN
* SSEETT__IIEEEEEE__EEXXCCEEPPTTIIOONNSS
* SSEETT__IIEEEEEE__IINNTTEERRRRUUPPTTSS
* SSEETT__IIEEEEEE__RROOUUNNDDIINNGG__MMOODDEE
* SSEETT__IIEEEEEE__SSTTAATTUUSS
* SSHHAAPPEE
* SSHHIIFFTT
* SSHHIIFFTTAA
* SSHHIIFFTTLL
* SSHHIIFFTTRR
* SSIIGGNN, DDSSIIGGNN, IISSIIGGNN
* SSPPAACCIINNGG
* SSPPRREEAADD
* SSUUMM
* SSYYSSTTEEMM__CCLLOOCCKK
* TTEESSTT__IIEEEEEE__EEXXCCEEPPTTIIOONN
* TTEESSTT__IIEEEEEE__IINNTTEERRRRUUPPTT
* TTIINNYY
* TTRRAANNSSFFEERR
* TTRRAANNSSPPOOSSEE
* UUBBOOUUNNDD
* WWRRIITTEE__MMEEMMOORRYY__BBAARRRRIIEERR
The CF90 compiler supports vector versions of some intrinsic
procedures. Using one of these intrinsics means that the presence of
the intrinsic itself, in a loop, does not inhibit the loop's ability
to vectorize. Vector versions of the following CF90 intrinsic
procedures exist on UNICOS platforms:
* AABBSS, CCAABBSS, CCDDAABBSS, DDAABBSS, IIAABBSS
* AACCOOSS, DDAACCOOSS
* AAIIMMAAGG
* AAIINNTT, DDIINNTT
* AALLOOGG, CCDDLLOOGG, CCLLOOGG, DDLLOOGG
* AALLOOGG1100, DDLLOOGG1100
* AANNDD
* AANNIINNTT, DDNNIINNTT
* AASSIINN, DDAASSIINN
* AATTAANN22, DDAATTAANN22
* AATTAANN, DDAATTAANN
* BBIITT__SSIIZZEE
* MM@@CCLLRR, MM@@LLDD, MM@@MMXX, MM@@LLDDMMXX, and MM@@UULL (the BMM intrinsic functions)
* BBTTEESSTT
* CCEEIILLIINNGG
* CCMMPPLLXX
* CCOOMMPPLL
* CCOONNJJGG
* CCOOSS, CCCCOOSS, CCDDCCOOSS, DDCCOOSS
* CCOOSSHH, DDCCOOSSHH
* CCOOTT, DDCCOOTT
* CCSSMMGG
* CCVVMMGGMM, CCVVMMGGNN, CCVVMMGGPP, CCVVMMGGZZ, CCVVMMGGTT
* DDBBLLEE, DDFFLLOOAATT
* DDIIGGIITTSS
* DDIIMM, DDDDIIMM, IIDDIIMM
* DDPPRROODD
* DDSSHHIIFFTTLL
* DDSSHHIIFFTTRR
* EEPPSSIILLOONN
* EEQQVV
* EEXXPP, CCDDEEXXPP, CCEEXXPP, DDEEXXPP
* EEXXPPOONNEENNTT
* FFLLOOOORR
* FFRRAACCTTIIOONN
* HHUUGGEE
* II2244MMUULLTT
* IIAANNDD
* IIBBCCLLRR
* IIBBIITTSS
* IIBBSSEETT
* IIEEEEEE__CCLLAASSSS
* IIEEEEEE__CCOOPPYY__SSIIGGNN
* IIEEEEEE__FFIINNIITTEE
* IIEEEEEE__IINNTT
* IIEEEEEE__IISS__NNAANN
* IIEEEEEE__RREEAALL
* IIEEEEEE__UUNNOORRDDEERREEDD
* IIEEOORR
* IINNTT, IIDDIINNTT, IIFFIIXX
* IINNTT2244, LLIINNTT
* IINNTT__MMUULLTT__UUPPPPEERR
* IIOORR
* IISSHHFFTT
* IISSHHFFTTCC
* KKIINNDD
* LLEEAADDZZ
* LLOOGGIICCAALL
* MMAASSKK
* MMAAXX, MMAAXX00, AAMMAAXX11, DDMMAAXX11, AAMMAAXX00, MMAAXX11
* MMAAXXEEXXPPOONNEENNTT
* MMEERRGGEE
* MMIINN, MMIINN00, AAMMIINN11, DDMMIINN11, AAMMIINN00, MMIINN11
* MMIINNEEXXPPOONNEENNTT
* MMOODD, AAMMOODD, DDMMOODD
* MMVVBBIITTSS
* NNEEAARREESSTT
* NNEEQQVV, XXOORR
* NNIINNTT, IIDDNNIINNTT
* NNOOTT
* OORR
* PPOOPPCCNNTT
* PPOOPPPPAARR
* PPRREECCIISSIIOONN
* PPRREESSEENNTT
* RRAADDIIXX
* RRAANNDDOOMM__NNUUMMBBEERR
* RRAANNFF
* RRAANNGGEE
* RREEAALL, FFLLOOAATT, SSNNGGLL
* RRRRSSPPAACCIINNGG
* SSCCAALLEE
* SSEELLEECCTTEEDD__IINNTT__KKIINNDD
* SSEETT__EEXXPPOONNEENNTT
* SSHHIIFFTT
* SSHHIIFFTTAA
* SSHHIIFFTTLL
* SSHHIIFFTTRR
* SSIIGGNN, DDSSIIGGNN, IISSIIGGNN
* SSIINN, CCDDSSIINN, CCSSIINN, DDSSIINN
* SSIINNHH, DDSSIINNHH
* SSPPAACCIINNGG
* SSPPRREEAADD
* SSQQRRTT, CCDDSSQQRRTT, CCSSQQRRTT, DDSSQQRRTT
* TTAANN, DDTTAANN
* TTAANNHH, DDTTAANNHH
* TTIINNYY
The CF90 compiler supports vector versions of some intrinsic
procedures on UNICOS/mk platforms, too. Using one of these intrinsics
means that the presence of the intrinsic itself, in a loop, does not
inhibit the loop's ability to vectorize. On UNICOS/mk platforms, you
must specify --OO vveeccttoorr33 and --ll mmffaassttvv on your ff9900(1) command line in
order for the compiler to be able to use vector versions of the
following intrinsic procedures:
* CCOOSS
* CCOOSSSS
* EEXXPP
* LLOOGG
* PPOOPPCCNNTT
* RRAANNFF
* SSIINN
* SSQQRRTT
For details about the Fortran 90 intrinsics, see the man pages
themselves and the _F_o_r_t_r_a_n _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, _V_o_l_u_m_e _2,
publication SR-3903.
The C/C++ intrinsics either allow direct access to hardware
instructions or result in the generation of inline code to perform
specialized functions. The intrinsic functions are processed
completely by the compiler, and no calls to external functions are
generated. For details about the C intrinsic procedures, see the _C_r_a_y
_C/_C++ _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, publication SR-2179.
For information about the math intrinsics, see the IINNTTRROO__LLIIBBMM(3M) man
page. When using the MIPSpro 7 Fortran 90 compiler, the math
intrinsic functions described in the _I_n_t_r_i_n_s_i_c _P_r_o_c_e_d_u_r_e_s _R_e_f_e_r_e_n_c_e
_M_a_n_u_a_l, publication SR-2138, are not used. See the SGI math library
documentation for information about math intrinsics supported on IRIX
systems.
SSEEEE AALLSSOO
IINNTTRROO__LLIIBBMM(3M), IINNTTRROO__SSHHMMEEMM(3)
_F_o_r_t_r_a_n _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, _V_o_l_u_m_e _2, publication SR-3903
_C_r_a_y _C/_C++ _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, publication SR-2179
_I_n_t_r_i_n_s_i_c _P_r_o_c_e_d_u_r_e_s _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, publication SR-2138, for the
printed version of this man page.